Multicasting is a bandwidth-conserving technology that reduces network traffic by simultaneously sending data packets to a specific group of receivers. Multicast data packets flow from a source to all receivers in the group over a distribution or forwarding tree. Data packets may be copied when the links to multiple destinations split.
The set of hosts, or nodes, that receive data packets addressed to a particular multicast address may be called a “host group.” Membership in a host group may be dynamic. Hosts may join or leave at any time. Accordingly, topology of a multicast forwarding tree may change at any time.
Multicast data packets may be forwarded along a forwarding tree based on their source addresses, for example, by performing a reverse path forwarding (“RPF”) check on an incoming data packet. A RPF check may determine whether the incoming data packet arrived on an interface which is an upstream interface towards the source. If the RPF check passes for the incoming multicast data packet, the packet may be forwarded through the node's downstream interfaces that are participating in the multicast group. Otherwise, the packet may be dropped.
With Internet Protocol (“IP”) multicast, a source may send data packets to a particular IP multicast address, and all receivers that are interested in receiving this traffic may inform network infrastructure that they have “joined” the host group, which means they will receive traffic directed to the IP multicast address.
IP multicast applications may be based on the user datagram protocol (“UDP”), and may lack a congestion avoidance mechanism. Accordingly, multicast data packets may be dropped more often than packets sent using other protocols, such as transmission control protocol (“TCP”). As a result, applications that utilize IP multicast may suffer degradation in Quality of Service (“QoS”).
As multicast data packets are forwarded along a forwarding tree, the path to each receiver may be unique, and so it is possible that only a minority of receivers may experience issues relating to QoS disruptions. Thus, it may be difficult to debug a QoS problem, particularly without being aware of the forwarding tree topology. Moreover, each node in a multicast tree may include one ingress (i.e. incoming) interface and multiple egress (i.e. outgoing) interfaces. Thus, collection of performance data from a potentially large and constantly changing number of interfaces may not be scalable.